package ${classPackageNameMap[table.className+'JsfService']};

import java.util.List;
import ${classTypeNameMap[table.className+'VO']};
import com.jd.xtl.common.spi.response.APIResult;
import com.jd.xtl.common.spi.response.PageResult;

/**
 * @author ${author!}
 * @since ${timeNow!}
 * ${table.remarks!}
 */
public interface ${table.className}JsfService {

    /**
     * 根据条件查询对象
     * @param request 查询条件
     * @return APIResult<${table.className}>
     */
    APIResult<${table.className+'VO'}> selectOne(${table.className}VO request);
    /**
     * 根据条件查询列表
     * @param request 查询条件
     * @return APIResult${"\l"}List<${table.className+'VO'}>>
     */
    APIResult${"\l"}List<${table.className+'VO'}>> selectList(${table.className+'VO'} request);
    /**
     * 根据条件查询分页
     * @param request ${table.className+'VO'}
     * @return APIResult${"\l"}PageResult<${table.className+'VO'}>>
     */
    APIResult${"\l"}PageResult<${table.className+'VO'}>> selectPage(${table.className+'VO'} request);
    /**
     * 根据id删除
     * @param request request
     * @return 影响记录数
     */
    APIResult${"\l"}Integer> deleteById(${table.className+'VO'} request);
    /**
     * 批量新增
     * @param requests requests
     * @return 影响记录数
     */
    APIResult${"\l"}Integer> insertBatch(List<${table.className+'VO'}> requests);
    /**
     * 新增或修改
     * @param request request
     * @return 影响记录数
     */
    APIResult${"\l"}Long> save(${table.className}VO request);

}